访问电脑版页面

导航:老古开发网手机版51单片机的寄存器

51单片机寄存器间接寻址方式与举例

导读:寄存间接寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。MCS-51单片机规定工作寄存器的R0、R1做为间接寻址寄存器。用于寻址内部或外部数据存储器的256个单元。
关键字:
51单片机,寄存器,间接寻址,

寄存间接寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。

MCS-51单片机规定工作寄存器的R0、R1做为间接寻址寄存器。用于寻址内部或外部数据存储器的256个单元。为什么会是256个单元呢?我们知道,R0或者R1都是一个8位的寄存器,所以它的寻址空间就是2的八次方=256。
例:MOV R0,#30H;将值30H加载到R0中
MOV A,@R0;把内部RAM地址30H内的值放到累加器A中


MOVX A,@R0;把外部RAM地址30H内的值放到累加器A中


大家想想,如果用DPTR做为间址寄存器,那么它的寻址范围是多少呢?DPTR是一个16位的寄存器,所以它的寻址范围就是2的十六次方=65536=64K。因用DPTR做为间址寄存器的寻址空间是64K,所以访问片外数据存储器时,我们通常就用DPTR做为间址寄存器。
例:MOVDPTR,#1234H;将DPTR值设为1234H(16位)
MOVXA,@DPTR;将外部RAM或I/O地址1234H内的值放到累加器A中

在执行PUSH(压栈)和POP(出栈)指令时,采用堆栈指针SP作寄存器间接寻址。
例:PUSH 30H;把内部RAM地址30H内的值放到堆栈区中
堆栈区是由SP寄存器指定的,如果执行上面这条命令前,SP为60H,命令执行后会把内部RAM地址30H内的值放到RAM的61H内。


那么做为寄存器间接寻址用的寄存器主要有哪些呢?我们前面提到的有四个,R0、R1、DPTR、SP


寄存器间接寻址范围总结:
1、内部RAM低128单元。对内部RAM低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为@Ri(i=0或1)。

2、外部RAM 64KB。对外部RAM64KB的间接寻址,应使用@DPTR作间址寻址寄存器,其形式为:@DPTR。
例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的单元的内容送入累加器A中。
外部RAM的低256单元是一个特殊的寻址区,除可以用DPTR作间址寄存器寻址外,还可以用R0或R1作间址寄存器寻址。
例如MOVX A,@R0;这条指令的意思是,把R0指定的外部RAM单元的内容送入累加器A。

堆栈操作指令(PUSH和POP)也应算作是寄存器间接寻址,即以堆栈指针SP作间址寄存器的间接寻址方式。

寄存器间接寻址方式不可以访问特殊功能寄存器!!


寄存器间接寻址也须以寄存器符号的形式表示,为了区别寄存器寻址我寄存器间接寻址的区别,在寄存器间接寻址方式式中,寄存器的名称前面加前缀标志“@”。


来源:互联网   作者:karen  2018/8/7 12:20:01
栏目: [ 51单片机的寄存器]

相关阅读

8051单片机复位后 ,各寄存器的初始状态如何?

51单片机中的PCON寄存器(电源控制及波特率选择寄存器)

51单片机寄存器的应用解析

51单片机特殊功能寄存器TCON的设计

51单片机寄存器间接寻址方式与举例

51单片机特殊功能寄存器功能一览表

51单片机存储器的结构和原理解析

51单片机寄存器的操作注意事项

MCS-51单片机寄存器TMOD的工作选择方式解析

8051单片机中的寄存器是算CPU还是RAM

51单片机内部寄存器的功能用法解析

51单片机特殊功能寄存器和位定义

80C51单片机实现专用寄存器位寻址的设计方案

51单片机特殊功能寄存器有哪些_功能是什么

51单片机中21个特殊功能寄存器的工作原理解析

51单片机分外功用寄存器操作进程

51单片机寄存器寻址的方法